\vsssub
\subsubsection{~Auxiliary programs} \label{sec:aux_mod}
\vsssub

\vspace{\baselineskip}
\noindent
\ww\ has several auxiliary pre- and post-processors, and two wave model shells
(see \para\ref{sec:auxprog}). These auxiliary programs and some additional routines
are stored in the following files. Generally, subroutines used only by the
programs are stored as internal subroutines with the main program. There is no
need for using the module structure in this case. The exception is an
additional module {\file w3fldsmd.ftn} which deals with the data flow of input
fields for the wave model between the field pre-processor and the stand-alone
model shell. The latter module does not have any explicit \ws\ dependencies,
and can therefore be integrated in any custom data pre-processor.

% fig:prepro

% \input{sys/fig_prep}

\vspace{\baselineskip} 
\noindent
Input data file management module \hfill {\file w3fldsmd.ftn}

\begin{flisti}
\fit{w3fldo}{Opening and checking of data files for {\F w3shel}.}
\fit{w3fldg}{Reading and writing of data files for {\F w3shel} (model input).}
\fit{w3fldd}{Reading and writing of data files for {\F w3shel} (data assimilation).}
\fit{w3fldp}{Prepare interpolation of input fields from arbitrary grids.}
\fit{w3fldh}{Management of homogeneous input fields in {\F w3shel}.}
\fit{w3fldm}{Process moving grid data in {\F w3shel}.}
\end{flisti}

\noindent
Grid pre-processing program \hfill {\file ww3\_grid.ftn}

\begin{flisti}
\fit{w3grid}{The grid preprocessor.}
\fit{readnl}{Reading {\F namelist} input (internal).}
\end{flisti}

\noindent
Initial conditions program \hfill {\file ww3\_strt.ftn}

\begin{flisti}
\fit{w3strt}{The initial conditions program.}
\end{flisti}

\noindent
Boundary conditions program \hfill {\file ww3\_bound.ftn}

\noindent
Boundary conditions program (NetCDF) \hfill {\file ww3\_bounc.ftn}

\begin{flisti}
\fit{w3bound}{The boundary conditions program (NetCDF).}
\end{flisti}

\noindent
Input field pre-processing program \hfill {\file ww3\_prep.ftn}

\noindent
Input field pre-processing program from NetCDF files \hfill {\file ww3\_prnc.ftn}

\begin{flisti}
\fit{w3prep}{Pre-processor for the input fields for the generic shell.}
\end{flisti}

\noindent
Tide pre-processing program \hfill {\file ww3\_prtide.ftn}

\begin{flisti}
\fit{w3prtide}{Pre-processor for tides.}
\end{flisti}

\noindent
Restart file pre-processing program \hfill {\file ww3\_uprstr.ftn}

\begin{flisti}
\fit{w3uprstr}{The restart file preprocessor.}
\fit{readnl}{Reading {\F namelist} input (internal).}
\end{flisti}

\noindent
Generic wave model program \hfill {\file ww3\_shel.ftn}

\begin{flisti}
\fit{w3shel}{The generic program shell.}
\end{flisti}

% fig:shell

% \input{sys/fig_shel}

\noindent
Grid splitting for {\file ww3\_multi} \hfill {\file ww3\_gspl.ftn}

\begin{flisti}
\fit{w3gspl}{The grid splitting program.}
\fit{grinfo, grtrim grfill, grlost, grsqrg, grsngl, grsepa, grfsml, grfrlg, gr1grd}{}
\fit{      }{\vspace{-\baselineskip} Routines to incrementally adjust individual grids.}
\end{flisti}

\noindent
Generic wave model program \hfill {\file ww3\_multi.ftn}

\begin{flisti}
\fit{w3mlti}{The multi-grid program shell.}
\end{flisti}

\noindent
Grid output integration for {\file ww3\_multi} \hfill {\file ww3\_gint.ftn}

\begin{flisti}
\fit{w3gint}{The post-processing program for integrating gridded
                    fields of mean wave parameters.}
\fit{w3exgi}{Actual output routine (internal).}
\end{flisti}

\noindent
Gridded data post-processing program \hfill {\file ww3\_outf.ftn}

\begin{flisti}
\fit{w3outf}{The post-processing program for gridded
                    fields of mean wave parameters.}
\fit{w3exgo}{Actual output routine (internal).}
\end{flisti}

\pb \noindent
Gridded data post-processing program (NetCDF) \hfill {\file ww3\_ounf.ftn}

\begin{flisti}
\fit{w3ounf}{The post-processing program for gridded
             fields of mean wave parameters, using NetCDF3 or
             NetCDF4 libraries for Fortran90.}
\fit{w3crnc}{Creation of NetCDF files, definition of dimensions and header data.}
\fit{w3exnc}{Actual output routine (internal).}
\end{flisti}

\noindent
Gridded data post-processing program (GrADS) \hfill {\file gx\_outf.ftn}

\begin{flisti}
\fit{gxoutf}{The post-processing program for converting gridded
             fields of mean wave parameters to input files for GrADS.}
\fit{gxexgo}{Actual output routine (internal).}
\end{flisti}

\noindent
Gridded data post-processing program (GRIB) \hfill {\file ww3\_grib.ftn}

\begin{flisti}
\fit{w3grib}{The post-processing program for generating GRIB files.}
\fit{w3exgb}{Actual output routine (internal).}
\end{flisti}

% fig:post

% \input{sys/fig_post}

\noindent
Point post-processing program \hfill {\file ww3\_outp.ftn}

\begin{flisti}
\fit{w3outp}{The post-processing program output at selected locations.}
\fit{w3expo}{Actual output routine (internal).}
\end{flisti}

\noindent
Point post-processing program \hfill {\file ww3\_ounp.ftn}

\begin{flisti}
\fit{w3ounp}{The post-processing program output at selected locations using NetCDF.}
\fit{w3crnc}{Creation of NetCDF files, definition of dimensions and header data.}
\fit{w3exnc}{Actual output routine (internal).}
\end{flisti}

\noindent
Point post-processing program (GrADS) \hfill {\file gx\_outp.ftn}

\begin{flisti}
\fit{gxoutp}{The post-processing program for converting output
             at selected locations to input files for GrADS.}
\fit{gxexpo}{Actual output routine (internal).}
\end{flisti}

\noindent
Track output post-processing program \hfill {\file ww3\_trck.ftn}

\begin{flisti}
\fit{w3trck}{Converting unformatted direct access track
             output file to integer-packed formatted file.}
\end{flisti}

\noindent
Track output post-processing program \hfill {\file ww3\_trnc.ftn}

\begin{flisti}
\fit{w3trck}{Converting unformatted direct access track
	     output file to NetCDF file.}
\fit{w3crnc}{Creation of NetCDF files, definition of dimensions and header data.}
\fit{w3exnc}{Actual output routine (internal).}
\end{flisti}

\noindent
Wave field tracking post-processing program \hfill {\file ww3\_systrk.ftn}

\begin{flisti}
\fit{w3systrk}{Tracking wave fields in space and time.}
\end{flisti}
